This invention relates generally to a dot pattern data generating apparatus, and more particularly to generating different sizes of a dot pattern for use in printers, display devices and the like.
Character pattern data generators for generating dot patterns typically employ outline data for each character to be generated. The outline data, which represents only the outline of the character pattern, is broken down into a plurality of line segments. A particular line segment of the outline data can be used for generating the outline of a character, numeral, symbol, graph or the like.
The overall quality of each character is enhanced by increasing the number of dots used to form the character. Word processors or the like typically produce significantly enhanced character patterns by sharply increasing the number of dots used to form the character patterns. The sharp increase in the number of dots used to form the character patterns requires a significant increase in the storage capacity of the character generator to store the dot pattern data.
To obviate such storage requirements, only outline data of the character pattern to be formed, rather than the entire dot pattern of the character to be generated is stored in the character generator. Once the particular outline data for a particular character pattern is chosen, the character generator will convert the outline data into a dot pattern of data for printing or displaying the latter. The outline data also can be modified to enlarge or reduce the size of the character pattern. Reduction in the size of the character pattern when formed from the outline data, however, often results in the spacing (i.e., spatial width) between characters being reduced by a multiplying factor different than the multiplying factor applied to the characters. A decrease in the overall quality of the reduced character pattern results.
More particularly, an outline font provides an outline of the character pattern on a map scale (e.g., 1 bit mapping), by splitting the outline data into a plurality of line segments and/or subcurves which can be stored in the generating apparatus. During display or printing, the region enclosed by the outline data is filled with dots to create a dot pattern of character data. When the dot pattern of character data is reduced, the ratio between the width of the character and spacing between characters changes because of the need for integer processing to convert the characters onto a map scale as explained below. A poor facsimile of the character pattern results.
The distortion created by reducing the character pattern can be more readily appreciated by analyzing, for exemplary purposes only, a Chinese character [Me] (eye). In this example, the original outline of the character pattern prior to reduction is represented on a bit map of, for example, 256.times.256 dots. A plurality of line segments and subcurves represent the outline of the character pattern. Each line segment and subcurve is defined by an initial and terminal coordinate. As used herein, the original outline is also referred to as a standard size pattern of outline data. The coordinates for the initial and terminal points of the line segments and/or subcurves representing the outline data of the standard size pattern are stored within the character generator. As shown in FIG. 6(a), an outline S having a center line T is defined by line segments having coordinates corresponding to the size of the dots which will form the dot pattern. FIG. 6(b) illustrates an outline S' reduced from outline S. Outline S is shown in FIG. 6(a) within a bit map of 256.times.256 dots. Outline S' is shown in FIG. 6(b) within a bit map of 40.times.40 dots (i.e., a scale down reduction ratio 40/256). Outline S' includes a line T' which corresponds to the center line T of outline S. In reducing outline S to outline S', line T' is no longer centered within outline S' because the reduced initial and/or terminal point coordinates defining the line segments and subcurves forming outline S, normally include a decimal portion (fraction). These decimal portions are rounded to the nearest integer.
The reduced point coordinates need to be rounded because display of the character pattern by a liquid crystal panel or a wire dot, ink jet, thermal or laser printer must necessarily generate a dot of a given finite size corresponding to integer coordinates necessary to map the original coordinates of outline S into a. In other words, since the original coordinates include decimal portions which cannot be mapped directly into a binary map, the original coordinates must be subjected to integer processing (i.e., rounding processes such as half-adjust, round-down and round-up). The resulting character shape represented by the line segments and/or subcurves after integer processing no longer corresponding exactly to the original character shape. Reduction of the outline data further aggravates this noncorrespondence resulting in line T' no longer centered within outline S'i.e. no correspondence to the original shape. Integer processing does not significantly affect the quality of a character pattern which has been enlarged in size because an observer cannot notice if a line is wider by one dot in an enlarged character pattern.
FIGS. 5(a) and 5(b) further illustrate the distortion created in the outline data when subjected to reduction. The original character pattern is shown in FIG. 5(a) and includes linear (spatial) widths A'- B', C'- D', E'- F', G'- H'. Each character pattern following reduction is shown in FIG. 5(b) and includes linear widths A"- B", C"- D", E"- F" and G"- H". The linear width G"- H", however, is not equal to linear widths A"- B", C"- D" and E"- F". A remarkably degraded reduced character pattern can result.
Accordingly, it is desirable to provide an apparatus and method for generating dot pattern data which can produce a reduced dot pattern of high fidelity simply and efficiently.